/*
 * Copyright (C) 2012-2016 TeraCN
 * 
 * This file is part of TeraCN.
 * 
 * TeraCN is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * TeraCN is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package tera.gameserver.model.quests;

import rlib.util.array.Array;

/**
 * @author Ronn Mod Evestu
 */
public final class QuestUtils
{
	/**
	 * Method notifyQuests.
	 * @param quests Array<QuestState>
	 * @param event QuestEvent
	 */
	public static void notifyQuests(Array<QuestState> quests, QuestEvent event)
	{
		quests.readLock();
		
		try
		{
			final QuestState[] array = quests.array();
			
			for (int i = 0, length = quests.size(); i < length; i++)
			{
				final Quest quest = array[i].getQuest();
				
				if (quest == null)
				{
					System.out.println("not found quest to " + array[i]);
					continue;
				}
				
				event.setQuest(quest);
				quest.notifyQuest(event.getType(), event);
			}
		}
		
		finally
		{
			quests.readUnlock();
		}
	}
	
	private QuestUtils()
	{
		throw new IllegalArgumentException();
	}
}